#ifndef COLOR_H
#define COLOR_H
#ifndef CARGO_H
#include "./Cargo.h"
#endif

ColorType operator|(const ColorType & c1, const ColorType & c2);
ColorType& operator|=(ColorType & c1, const ColorType & c2);
class ColorDefine : public CargoDefine
{
    ColorType color;
public:

    ColorDefine(ColorType color);
    ColorDefine(const std::initializer_list<ColorType> &t_arr);
    void clear() override;
    virtual ~ColorDefine();

    inline ColorType getcolor() { return color; }


    std::string serialization() override;
    void deserialization() override;

    bool isNone() override;

    friend class ColorCargo;
    friend class Cargo_Manager;
};


class ColorCargo : public Cargo
{
public:
    ColorCargo(ColorDefine *define);
    // ~ColorCargo();
};

#endif
